package com.sojson.udp.config.handler;

import org.springframework.stereotype.Component;

import com.sojson.udp.util.UdpUtil;
import com.sojson.udp.util.enums.EUdpControlValue;
import com.sojson.util.HexUtil;

import io.netty.channel.ChannelHandlerContext;
import lombok.extern.slf4j.Slf4j;

/**
 * Udp心跳包处理器
 * 
 * @author liu
 * @date 2024-05-30
 */
@Slf4j
@Component
public class UdpHandlerHeartbeat {

    int a = 0;

    public void run(ChannelHandlerContext ctx, String data, String addr, String addrRever) throws Exception {
        // 当前累计流量(立方)
        long totalFlow = Long.parseLong(HexUtil.reverse(data.substring(90, 98)), 16);
        log.info("当前累计流量: " + totalFlow);

        // TODO
        // business.run(ctx, data);
        a++;
        UdpUtil.controlValue(addrRever, a < 2 ? EUdpControlValue.CLOSE : EUdpControlValue.OPEN);
        if (a > 2) {
            a = 0;
        }
    }

}